﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Pex.Framework;
using Microsoft.Pex.Framework.Validation;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Seqex.Tests;

namespace PaperExamples.GraphTest
{
    [PexClass(typeof(AdjacencyGraphOrig))]
    [PexAllowedExceptionFromTypeUnderTest(typeof(InvalidOperationException))]
    [PexAllowedExceptionFromTypeUnderTest(typeof(ArgumentException), AcceptExceptionSubtypes = true)]
    [TestClass]
    public partial class AdjacencyGraphOrigTest
    {
        [PexMethod]
        public Edge AddEdge(
            [PexAssumeUnderTest]AdjacencyGraphOrig target01,
            Vertex source,
            Vertex target
        )
        {
            Edge result = target01.AddEdge(source, target);
            return result;
        }

        [PexMethod]
        public void AddVertex([PexAssumeUnderTest]AdjacencyGraphOrig target, Vertex v)
        {
            target.AddVertex(v);
            //return result;
        }

        [PexMethod]
        public AdjacencyGraphOrig Constructor()
        {
            AdjacencyGraphOrig target = new AdjacencyGraphOrig();
            return target;
        }
    }
}
